[INFO] cloning repository https://github.com/Skynse/cutio
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Skynse/cutio" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkynse%2Fcutio", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkynse%2Fcutio'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] be4e423443df1b05a4982e91a22b3d170c9825d4
[INFO] checking Skynse/cutio against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkynse%2Fcutio" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Skynse/cutio
[INFO] finished tweaking git repo https://github.com/Skynse/cutio
[INFO] tweaked toml for git repo https://github.com/Skynse/cutio written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Skynse/cutio on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Skynse/cutio already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dispatch2 v0.2.0
[INFO] [stderr]   Downloaded zbus v5.7.1
[INFO] [stderr]   Downloaded zbus_macros v5.7.1
[INFO] [stderr]   Downloaded rfd v0.15.3
[INFO] [stderr]   Downloaded lru v0.16.0
[INFO] [stderr]   Downloaded ashpd v0.11.0
[INFO] [stderr]   Downloaded zune-jpeg v0.4.19
[INFO] [stderr]   Downloaded rgb v0.8.51
[INFO] [stderr]   Downloaded cc v1.2.29
[INFO] [stderr]   Downloaded gstreamer-video v0.23.6
[INFO] [stderr]   Downloaded gstreamer-video-sys v0.23.6
[INFO] [stderr]   Downloaded muldiv v1.0.1
[INFO] [stderr]   Downloaded gobject-sys v0.20.10
[INFO] [stderr]   Downloaded option-operations v0.5.0
[INFO] [stderr]   Downloaded gstreamer-sys v0.23.6
[INFO] [stderr]   Downloaded cfg-expr v0.20.1
[INFO] [stderr]   Downloaded gstreamer-base-sys v0.23.6
[INFO] [stderr]   Downloaded glib-sys v0.20.10
[INFO] [stderr]   Downloaded gstreamer-base v0.23.6
[INFO] [stderr]   Downloaded gstreamer v0.23.7
[INFO] [stderr]   Downloaded glib-macros v0.20.12
[INFO] [stderr]   Downloaded gstreamer-pbutils-sys v0.23.5
[INFO] [stderr]   Downloaded gstreamer-pbutils v0.23.5
[INFO] [stderr]   Downloaded atomic_refcell v0.1.13
[INFO] [stderr]   Downloaded gstreamer-app-sys v0.23.5
[INFO] [stderr]   Downloaded gstreamer-audio-sys v0.23.6
[INFO] [stderr]   Downloaded gstreamer-app v0.23.5
[INFO] [stderr]   Downloaded gio-sys v0.20.10
[INFO] [stderr]   Downloaded gstreamer-audio v0.23.6
[INFO] [stderr]   Downloaded glib v0.20.12
[INFO] [stderr]   Downloaded ab_glyph v0.2.30
[INFO] [stderr]   Downloaded webbrowser v1.0.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f
[INFO] running `Command { std: "docker" "start" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling target-lexicon v0.13.2
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling xml-rs v0.8.26
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking accesskit v0.17.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling cfg-expr v0.20.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking async-lock v3.4.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling wayland-scanner v0.31.6
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking async-executor v1.13.2
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]    Compiling wayland-backend v0.3.10
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking async-fs v2.1.2
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking weezl v0.1.10
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking option-operations v0.5.0
[INFO] [stderr]     Checking immutable-chunkmap v2.0.6
[INFO] [stderr]     Checking avif-serialize v0.8.5
[INFO] [stderr]    Compiling winit v0.30.11
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking epaint_default_fonts v0.31.1
[INFO] [stderr]     Checking muldiv v1.0.1
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking rgb v0.8.51
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]     Checking accesskit_consumer v0.26.0
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking zune-jpeg v0.4.19
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking image-webp v0.2.3
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking wayland-client v0.31.10
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]     Checking atomic_refcell v0.1.13
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking ab_glyph v0.2.30
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]    Compiling rfd v0.15.3
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling mime_guess2 v2.3.1
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking wayland-protocols v0.32.8
[INFO] [stderr]     Checking wayland-cursor v0.31.10
[INFO] [stderr]     Checking lru v0.16.0
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking emath v0.31.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking ecolor v0.31.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking polling v3.8.0
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking epaint v0.31.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking av1-grain v0.2.4
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking async-io v2.4.1
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking async-signal v0.2.11
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking async-process v2.3.1
[INFO] [stderr]     Checking egui v0.31.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.8
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.8
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking quick-xml v0.30.0
[INFO] [stderr]     Checking zvariant_utils v3.2.0
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking egui_glow v0.31.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking ravif v0.11.20
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]     Checking webbrowser v1.0.5
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling system-deps v7.0.5
[INFO] [stderr]     Checking arboard v3.6.0
[INFO] [stderr]     Checking egui_extras v0.31.1
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling zvariant_derive v5.6.0
[INFO] [stderr]    Compiling glib-macros v0.20.12
[INFO] [stderr]    Compiling glib-sys v0.20.10
[INFO] [stderr]    Compiling gobject-sys v0.20.10
[INFO] [stderr]    Compiling gstreamer-sys v0.23.6
[INFO] [stderr]    Compiling gstreamer-base-sys v0.23.6
[INFO] [stderr]    Compiling gio-sys v0.20.10
[INFO] [stderr]    Compiling gstreamer-audio-sys v0.23.6
[INFO] [stderr]    Compiling gstreamer-video-sys v0.23.6
[INFO] [stderr]    Compiling gstreamer-pbutils-sys v0.23.5
[INFO] [stderr]    Compiling gstreamer-app-sys v0.23.5
[INFO] [stderr]    Compiling zvariant v5.6.0
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]     Checking zbus_names v4.2.0
[INFO] [stderr]     Checking zbus_xml v4.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking zbus-lockstep v0.4.4
[INFO] [stderr]     Checking glib v0.20.12
[INFO] [stderr]    Compiling zbus_macros v5.7.1
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]     Checking zbus v5.7.1
[INFO] [stderr]     Checking atspi-common v0.6.0
[INFO] [stderr]     Checking gstreamer v0.23.7
[INFO] [stderr]     Checking atspi-proxies v0.6.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.10.1
[INFO] [stderr]     Checking ashpd v0.11.0
[INFO] [stderr]     Checking atspi-connection v0.6.0
[INFO] [stderr]     Checking atspi v0.22.0
[INFO] [stderr]     Checking accesskit_unix v0.13.1
[INFO] [stderr]     Checking accesskit_winit v0.23.1
[INFO] [stderr]     Checking egui-winit v0.31.1
[INFO] [stderr]     Checking eframe v0.31.1
[INFO] [stderr]     Checking gstreamer-base v0.23.6
[INFO] [stderr]     Checking gstreamer-video v0.23.6
[INFO] [stderr]     Checking gstreamer-audio v0.23.6
[INFO] [stderr]     Checking gstreamer-app v0.23.5
[INFO] [stderr]     Checking gstreamer-pbutils v0.23.5
[INFO] [stderr]     Checking cutio v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AudioMetadata` and `VideoMetadata`
[INFO] [stdout]  --> src/ops/clip_ops.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, AudioMetadata, Clip, VideoClip, VideoMetadata};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AudioBuffer`
[INFO] [stdout]  --> src/renderer/time_player_bridge.rs:1:42
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::renderer::timeline_renderer::{AudioBuffer, TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]   --> src/types/media_library.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         use std::process::Command;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/ui/app.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/ui/app.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::timeline::{self, Timeline};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]  --> src/ui/medialib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::GenericImageView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrokeKind`
[INFO] [stdout]  --> src/ui/timeline_widget.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use eframe::egui::{self, StrokeKind};
[INFO] [stdout]   |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::video_player::VideoPlayer`
[INFO] [stdout]  --> src/ui/track_widget.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ui::video_player::VideoPlayer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VideoFrame`
[INFO] [stdout]  --> src/ui/video_player.rs:5:60
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::renderer::timeline_renderer::{TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Track` and `VideoTrack`
[INFO] [stdout]   --> src/main.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::track::{Track, VideoTrack};
[INFO] [stdout]    |                           ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioMetadata` and `VideoMetadata`
[INFO] [stdout]  --> src/ops/clip_ops.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, AudioMetadata, Clip, VideoClip, VideoMetadata};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AudioBuffer`
[INFO] [stdout]  --> src/renderer/time_player_bridge.rs:1:42
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::renderer::timeline_renderer::{AudioBuffer, TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]   --> src/types/media_library.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         use std::process::Command;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/ui/app.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/ui/app.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::timeline::{self, Timeline};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]  --> src/ui/medialib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::GenericImageView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrokeKind`
[INFO] [stdout]  --> src/ui/timeline_widget.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use eframe::egui::{self, StrokeKind};
[INFO] [stdout]   |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::video_player::VideoPlayer`
[INFO] [stdout]  --> src/ui/track_widget.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ui::video_player::VideoPlayer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VideoFrame`
[INFO] [stdout]  --> src/ui/video_player.rs:5:60
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::renderer::timeline_renderer::{TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Track` and `VideoTrack`
[INFO] [stdout]   --> src/main.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::track::{Track, VideoTrack};
[INFO] [stdout]    |                           ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:288:63
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:302:67
[INFO] [stdout]     |
[INFO] [stdout] 302 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 | ...                   1.0,
[INFO] [stdout]     |                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:436:59
[INFO] [stdout]     |
[INFO] [stdout] 436 | ...                   egui::Stroke::new(1.0, border_color),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:498:55
[INFO] [stdout]     |
[INFO] [stdout] 498 | ...                   egui::Stroke::new(1.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:804:39
[INFO] [stdout]     |
[INFO] [stdout] 804 |                     egui::Stroke::new(1.0, egui::Color32::from_gray(120)),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:822:39
[INFO] [stdout]     |
[INFO] [stdout] 822 |                     egui::Stroke::new(2.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:854:35
[INFO] [stdout]     |
[INFO] [stdout] 854 |                 egui::Stroke::new(2.0, egui::Color32::RED),
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Clip`
[INFO] [stdout]  --> src/types/track.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, Clip, VideoClip};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:288:63
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:302:67
[INFO] [stdout]     |
[INFO] [stdout] 302 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 | ...                   1.0,
[INFO] [stdout]     |                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:436:59
[INFO] [stdout]     |
[INFO] [stdout] 436 | ...                   egui::Stroke::new(1.0, border_color),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:498:55
[INFO] [stdout]     |
[INFO] [stdout] 498 | ...                   egui::Stroke::new(1.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:804:39
[INFO] [stdout]     |
[INFO] [stdout] 804 |                     egui::Stroke::new(1.0, egui::Color32::from_gray(120)),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:822:39
[INFO] [stdout]     |
[INFO] [stdout] 822 |                     egui::Stroke::new(2.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:854:35
[INFO] [stdout]     |
[INFO] [stdout] 854 |                 egui::Stroke::new(2.0, egui::Color32::RED),
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Clip`
[INFO] [stdout]  --> src/types/track.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, Clip, VideoClip};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:843:9
[INFO] [stdout]     |
[INFO] [stdout] 843 |         events: &mut Vec<TimelineEvent>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_pos`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:957:43
[INFO] [stdout]     |
[INFO] [stdout] 957 |                     DragState::Playhead { start_pos } => {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: try ignoring the field: `start_pos: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_idx`
[INFO] [stdout]   --> src/ui/track_widget.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     track_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `video_clip`
[INFO] [stdout]   --> src/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let video_clip = VideoClip {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_clip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline_arc`
[INFO] [stdout]   --> src/main.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let timeline_arc = Arc::new(RwLock::new(timeline.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cut_clip_at` is never used
[INFO] [stdout]  --> src/ops/clip_ops.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn cut_clip_at<T>(clip: &T, playhead: f64) -> Option<(T, T)>
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ClipSplit` is never used
[INFO] [stdout]   --> src/ops/clip_ops.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait ClipSplit: Clip {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_gst_init` is never used
[INFO] [stdout]  --> src/ops/video_funcs.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn ensure_gst_init() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_video_gst` is never used
[INFO] [stdout]   --> src/ops/video_funcs.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn trim_video_gst(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concat_videos_gst` is never used
[INFO] [stdout]   --> src/ops/video_funcs.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn concat_videos_gst(input_files: &[&str], output: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_audio_gst` is never used
[INFO] [stdout]    --> src/ops/video_funcs.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn trim_audio_gst(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix_audio_gst` is never used
[INFO] [stdout]    --> src/ops/video_funcs.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn mix_audio_gst(inputs: &[&str], output: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mux_audio_video_gst` is never used
[INFO] [stdout]    --> src/ops/video_funcs.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub fn mux_audio_video_gst(video: &str, audio: &str, output: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `play` and `pause` are never used
[INFO] [stdout]   --> src/renderer/time_player_bridge.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> TimelinePlayerBridge<'a> {
[INFO] [stdout]    | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn play(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn pause(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `frame_number` are never read
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct VideoFrame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub timestamp: f64, // Time in seconds
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 18 |     pub frame_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VideoFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct AudioBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `clear_cache`, `decode_video_frame_with_bus`, `get_video_duration`, `validate_timestamp`, and `decode_video_frame_enhanced` are never used
[INFO] [stdout]    --> src/renderer/timeline_renderer.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl TimelineRenderer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn decode_video_frame_with_bus(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn get_video_duration(path: &str) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     fn validate_timestamp(path: &str, timestamp: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     fn decode_video_frame_enhanced(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clip` is never used
[INFO] [stdout]  --> src/types/media.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Clip {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_by_filename` is never used
[INFO] [stdout]    --> src/types/media_library.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl MediaLibrary {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn find_by_filename(&self, name: &str) -> Option<&MediaItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `loop_start`, `loop_end`, and `volume` are never read
[INFO] [stdout]  --> src/types/playback_state.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct PlaybackState {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub loop_start: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 6 |     pub loop_end: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub volume: f64,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `PlaybackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `save_to_file` and `load_from_file` are never used
[INFO] [stdout]   --> src/types/project.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Project {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 22 |     /// Save the project to a JSON file at the given path.
[INFO] [stdout] 23 |     pub fn save_to_file(&self, path: &str) -> std::io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn load_from_file(path: &str) -> std::io::Result<Project> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/project.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl Project {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 79 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_video_clips_at` is never used
[INFO] [stdout]   --> src/types/timeline.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Timeline {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 14 |     /// Returns all active video clips at a specific time.
[INFO] [stdout] 15 |     pub fn active_video_clips_at(&self, time: f64) -> Vec<&VideoClip> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `split_clip_at_playhead` is never used
[INFO] [stdout]   --> src/types/timeline.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Timeline {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 35 |     pub fn split_clip_at_playhead(&mut self, track_id: &str, playhead: f64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `clips_in_range`, and `clips_on_track` are never used
[INFO] [stdout]    --> src/types/timeline.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl Timeline {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  84 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn clips_on_track(&self, track_id: &str) -> Option<Vec<ActiveClip>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_video` is never used
[INFO] [stdout]    --> src/types/timeline.rs:131:36
[INFO] [stdout]     |
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ---------- method in this implementation
[INFO] [stdout] 131 |                             pub fn is_video(&self) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active_at` is never used
[INFO] [stdout]    --> src/types/timeline.rs:137:36
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         -------------- method in this implementation
[INFO] [stdout] 137 |                             pub fn is_active_at(&self, time: f64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackType` is never used
[INFO] [stdout]   --> src/types/track.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum TrackType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/app.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CutioApp {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(state: AppState) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cached_duration` is never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct TimelineState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub cached_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ResizeLeft`, `ResizeRight`, and `Selection` are never constructed
[INFO] [stdout]   --> src/ui/timeline_widget.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum DragState {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     ResizeLeft {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     ResizeRight {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Selection {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `new_start_time` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ClipMoved {
[INFO] [stdout]    |     --------- fields in this variant
[INFO] [stdout] 90 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 91 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 92 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, `new_start_time`, and `new_duration` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     ClipResized {
[INFO] [stdout]    |     ----------- fields in this variant
[INFO] [stdout] 96 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 97 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 98 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 99 |         new_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `multi_select` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ClipSelected {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 103 |         clip_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 104 |         track_idx: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 105 |         multi_select: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:108:25
[INFO] [stdout]     |
[INFO] [stdout] 108 |     ClipDoubleClicked { clip_id: String, track_idx: usize },
[INFO] [stdout]     |     -----------------   ^^^^^^^          ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:110:20
[INFO] [stdout]     |
[INFO] [stdout] 110 |     RightClicked { time: f64, track_idx: Option<usize> },
[INFO] [stdout]     |     ------------   ^^^^       ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_waveforms` is never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct TimelineWidget<'a> {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 153 |     show_waveforms: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `snap_enabled` and `show_waveforms` are never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl<'a> TimelineWidget<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn snap_enabled(mut self, enabled: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn show_waveforms(mut self, show: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESIZE_HANDLE_WIDTH` is never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 189 |         const RESIZE_HANDLE_WIDTH: f32 = 8.0;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `track_widget` is never used
[INFO] [stdout]   --> src/ui/track_widget.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn track_widget(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timeline`, `renderer`, `width`, `height`, and `frame_rate` are never read
[INFO] [stdout]   --> src/ui/video_player.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VideoPlayer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 11 |     pub timeline: Arc<RwLock<Timeline>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub renderer: TimelineRenderer,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub frame_rate: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_playback` is never used
[INFO] [stdout]   --> src/ui/video_player.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VideoPlayer {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_playback(&mut self, is_playing: bool, ctx: &egui::Context) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ^^^^^-----
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `Track` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         ^^^^^---------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `VideoClip` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:843:9
[INFO] [stdout]     |
[INFO] [stdout] 843 |         events: &mut Vec<TimelineEvent>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_pos`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:957:43
[INFO] [stdout]     |
[INFO] [stdout] 957 |                     DragState::Playhead { start_pos } => {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: try ignoring the field: `start_pos: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_idx`
[INFO] [stdout]   --> src/ui/track_widget.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     track_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `video_clip`
[INFO] [stdout]   --> src/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let video_clip = VideoClip {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_clip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline_arc`
[INFO] [stdout]   --> src/main.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let timeline_arc = Arc::new(RwLock::new(timeline.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `play` and `pause` are never used
[INFO] [stdout]   --> src/renderer/time_player_bridge.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> TimelinePlayerBridge<'a> {
[INFO] [stdout]    | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn play(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn pause(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `frame_number` are never read
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct VideoFrame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub timestamp: f64, // Time in seconds
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 18 |     pub frame_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VideoFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct AudioBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `clear_cache`, `decode_video_frame_with_bus`, `get_video_duration`, `validate_timestamp`, and `decode_video_frame_enhanced` are never used
[INFO] [stdout]    --> src/renderer/timeline_renderer.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl TimelineRenderer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn decode_video_frame_with_bus(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn get_video_duration(path: &str) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     fn validate_timestamp(path: &str, timestamp: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     fn decode_video_frame_enhanced(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `asset_path` is never used
[INFO] [stdout]  --> src/types/media.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Clip {
[INFO] [stdout]   |           ---- method in this trait
[INFO] [stdout] 4 |     fn id(&self) -> &str;
[INFO] [stdout] 5 |     fn asset_path(&self) -> &str;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `loop_start`, `loop_end`, and `volume` are never read
[INFO] [stdout]  --> src/types/playback_state.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct PlaybackState {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub loop_start: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 6 |     pub loop_end: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub volume: f64,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `PlaybackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/project.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl Project {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 79 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_video_clips_at` is never used
[INFO] [stdout]   --> src/types/timeline.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Timeline {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 14 |     /// Returns all active video clips at a specific time.
[INFO] [stdout] 15 |     pub fn active_video_clips_at(&self, time: f64) -> Vec<&VideoClip> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_video` is never used
[INFO] [stdout]    --> src/types/timeline.rs:131:36
[INFO] [stdout]     |
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ---------- method in this implementation
[INFO] [stdout] 131 |                             pub fn is_video(&self) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active_at` is never used
[INFO] [stdout]    --> src/types/timeline.rs:137:36
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         -------------- method in this implementation
[INFO] [stdout] 137 |                             pub fn is_active_at(&self, time: f64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackType` is never used
[INFO] [stdout]   --> src/types/track.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum TrackType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/app.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CutioApp {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(state: AppState) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cached_duration` is never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct TimelineState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub cached_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ResizeLeft`, `ResizeRight`, and `Selection` are never constructed
[INFO] [stdout]   --> src/ui/timeline_widget.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum DragState {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     ResizeLeft {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     ResizeRight {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Selection {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `new_start_time` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ClipMoved {
[INFO] [stdout]    |     --------- fields in this variant
[INFO] [stdout] 90 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 91 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 92 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, `new_start_time`, and `new_duration` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     ClipResized {
[INFO] [stdout]    |     ----------- fields in this variant
[INFO] [stdout] 96 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 97 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 98 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 99 |         new_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `multi_select` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ClipSelected {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 103 |         clip_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 104 |         track_idx: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 105 |         multi_select: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:108:25
[INFO] [stdout]     |
[INFO] [stdout] 108 |     ClipDoubleClicked { clip_id: String, track_idx: usize },
[INFO] [stdout]     |     -----------------   ^^^^^^^          ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:110:20
[INFO] [stdout]     |
[INFO] [stdout] 110 |     RightClicked { time: f64, track_idx: Option<usize> },
[INFO] [stdout]     |     ------------   ^^^^       ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_waveforms` is never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct TimelineWidget<'a> {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 153 |     show_waveforms: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `snap_enabled` and `show_waveforms` are never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl<'a> TimelineWidget<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn snap_enabled(mut self, enabled: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn show_waveforms(mut self, show: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESIZE_HANDLE_WIDTH` is never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 189 |         const RESIZE_HANDLE_WIDTH: f32 = 8.0;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `track_widget` is never used
[INFO] [stdout]   --> src/ui/track_widget.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn track_widget(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timeline`, `renderer`, `width`, `height`, and `frame_rate` are never read
[INFO] [stdout]   --> src/ui/video_player.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VideoPlayer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 11 |     pub timeline: Arc<RwLock<Timeline>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub renderer: TimelineRenderer,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub frame_rate: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_playback` is never used
[INFO] [stdout]   --> src/ui/video_player.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VideoPlayer {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_playback(&mut self, is_playing: bool, ctx: &egui::Context) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ^^^^^-----
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `Track` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         ^^^^^---------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `VideoClip` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 45s
[INFO] running `Command { std: "docker" "inspect" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f", kill_on_drop: false }`
[INFO] [stdout] 8248238c07fa6c51ca12235db931e4c7670115e451a2cccb52639ccb9aa87d0f
